package com.h.chatroom.mapper;

import com.h.chatroom.pojo.dataobject.Friend;
import com.h.chatroom.pojo.dataobject.Session;
import com.h.chatroom.pojo.dataobject.SessionUserItem;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface SessionMapper {

    // 1. 根据 用户ID 在 message_session_user 表中查询，查看在哪些会话中存在，返回存在的所有会话的 sessionId，
    //    再在message_session 表中根据 获取到的所有sessionId ，让其根据对应的 lastTime 进行降序排序
    List<Integer> selectSessionIdByUserId(Integer userId);

    // 2. 根据 得到的sessionId 再在 message_session_user 表中查询对应的所有 userId，并且刨除登录用户本身，
    //    之后根据得到的 userId 再去 user 表中 进行查找对应的 userId username 并且转换为 Friend类，进行获取
    List<Friend> selectFriendBySessionId(Integer sessionId,Integer selfUserId);

    // 3. 新增一个会话记录, 返回会话的 id
    //    这样的方法返回值 int 表示的是插入操作影响到几行.
    //    此处获取 sessionId 是通过参数的 messageSession 的 sessionId 属性获取的
    int insertSession(Session session);

    // 4. 给 message_session_user 表也新增对应的记录
    int insertSessionUser(SessionUserItem sessionUserItem);
}
